using System;
using System.ComponentModel.DataAnnotations.Schema;
using hao_Common.Dapper.Repository;

namespace hao_Model
{
    /// <summary>
    /// 用户实体
    /// </summary>
    [Table("user")]
    public class User : ISoftDelete
    {
        public Guid Id { get; set; }              // 用户唯一标识
        public string UserName { get; set; }        // 用户名
        public string? Nickname { get; set; }       // 昵称
        public string Password { get; set; }        // 密码（加密存储）
        public string Avatar { get; set; }          // 头像URL
        // 移除这两个冗余字段
        // public int Level { get; set; }              // 用户等级
        // public string LevelName { get; set; }       // 等级名称
        public string Phone { get; set; }           // 手机号
        public string Email { get; set; }           // 邮箱
        public int? Gender { get; set; }            // 性别（0未知1男2女）
        public DateTime? Birthday { get; set; }     // 生日
        public DateTime RegisterTime { get; set; }  // 注册时间
        public DateTime? LastLoginTime { get; set; } // 最后登录时间
        public int Status { get; set; }             // 状态（0正常1禁用）
        public bool IsDeleted { get; set; }         // 软删除
    }

    /// <summary>
    /// 角色实体
    /// </summary>
    public class Role : ISoftDelete
    {
        public Guid Id { get; set; }         // 角色唯一标识
        public string Name { get; set; }       // 角色名称
        public string Description { get; set; } // 角色描述
        public bool IsDeleted { get; set; }    // 软删除
    }

    /// <summary>
    /// 用户-角色关系实体
    /// </summary>
    public class UserRole : ISoftDelete
    {
        public Guid Id { get; set; }         // 主键
        public Guid UserId { get; set; }     // 用户Id
        public Guid RoleId { get; set; }     // 角色Id
        public bool IsDeleted { get; set; }    // 软删除
    }
}